Efficient management of resources during congested conditions can be a measure of data switch performance, especially when those resources (e.g., packet storage, transmit queue storage) are shared among multiple ports. For example, consider a switch that guarantees a minimum resource allocation per port by reserving some portion of the resource for use by each port. After reservations have been made, the remaining amount of the resource, such as a memory, may be allocated on a need-to-use basis as part of a shared resource pool.
If one of the ports begins to use resources from the shared pool (i.e., beyond the reserved portion), congestion with respect to that port may be implied. If multiple ports are using resources from the shared pool, one, some, or all of the ports might be contributing to the same congestion, or to a variety of congested situations. Thus, determining which ports might be involved in congestion at any given time can be complicated, making it difficult to balance use of the resource pool. Therefore, apparatus, systems, and methods to more efficiently manage resources in the presence of congestion are needed.